package com.fastwire.carriere.controller.impl;

import java.util.List;

import com.fastwire.carriere.common.util.DateUtil;
import com.fastwire.carriere.controller.SystemAdminController;
import com.fastwire.carriere.dao.DAOException;
import com.fastwire.carriere.dao.DAOFactory;
import com.fastwire.carriere.dao.SystemParameterDao;
import com.fastwire.carriere.system.entity.SystemParameter;
import com.fastwire.carriere.system.vo.SystemParameterVo;
import com.google.common.collect.Lists;

public class SystemAdminControllerImpl implements SystemAdminController {

	private final SystemParameterDao systemParameterDao = DAOFactory
			.getInstance().getSystemParameterDao();

	@Override
	public List<SystemParameterVo> getSystemParametersbyCatelog(String catelog)
			throws DAOException {

		List<SystemParameter> parameters = systemParameterDao
				.getParamterbyCatelog(catelog);

		List<SystemParameterVo> parameterVos = Lists.newArrayList();
		for (SystemParameter parameter : parameters) {
			parameterVos.add(new SystemParameterVo(parameter));

		}

		return parameterVos;
	}

	@Override
	public void updateSystemParameter(SystemParameterVo parameterVo)
			throws DAOException {

		SystemParameter systemParameter = systemParameterDao
				.getParamterbyNmeAndCat(parameterVo.getName(),
						parameterVo.getCatelog());

		if (systemParameter == null) {
			systemParameter = new SystemParameter(parameterVo.getName(),
					parameterVo.getValue(), parameterVo.getCatelog(),
					parameterVo.getUpdatedby());
		} else {
			systemParameter.setValue(parameterVo.getValue());

		}
		systemParameter.setLastModifiedBy(parameterVo.getUpdatedby());
		systemParameter.setLastModifiedDate(DateUtil.getDate());
		systemParameterDao.updateParameter(systemParameter);
	}

}
